package com.molichuxing.services.infrastructure.bean;

import com.molichuxing.framework.bean.RootBean;

import java.io.Serializable;
import java.time.LocalDateTime;

public class AccountBean extends RootBean {
    /**
     * id id
     */
    private Integer id;

    /**
     * 系统类型（1：op，2：经销商） system_type
     */
    private Integer systemType;

    /**
     * 用户账号（邮箱） account
     */
    private String account;

    /**
     * 登陆密码 password
     */
    private String password;

    /**
     * 密码盐值 password_salt
     */
    private String passwordSalt;

    /**
     * 手机号 user_phone
     */
    private String userPhone;

    /**
     * 真实姓名 real_name
     */
    private String realName;

    /**
     * 是否启用(0:启用，1:禁用)，默认启用 status
     */
    private Integer status;

    /**
     * 是否删除(0：未删除,  1：删除) is_deleted
     */
    private Boolean isDeleted;

    /**
     * 操作人id account_id
     */
    private Integer accountId;

    /**
     * 操作人名 account_account
     */
    private String accountAccount;

    /**
     * 是否为超级管理员（0:否， 1:是），默认为0 is_super
     */
    private Boolean isSuper;

    /**
     * 智能终端权限(0:没有，1:有),默认为0 smart_terminal
     */
    private Boolean smartTerminal;

    /**
     * 车联网角色名称 iov_group_name
     */
    private String iovGroupName;

    /**
     * 创建时间 gmt_create
     */
    private LocalDateTime gmtCreate;

    /**
     * 更新时间 gmt_modified
     */
    private LocalDateTime gmtModified;

    /**
     * permission_account
     */
    private static final long serialVersionUID = 1L;

    /**
     * id
     * @date 2019-11-26 11:38:35
     * @return id id
     */
    public Integer getId() {
        return id;
    }

    /**
     * id
     * @date 2019-11-26 11:38:35
     * @param id id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 系统类型（1：op，2：经销商）
     * @date 2019-11-26 11:38:35
     * @return system_type 系统类型（1：op，2：经销商）
     */
    public Integer getSystemType() {
        return systemType;
    }

    /**
     * 系统类型（1：op，2：经销商）
     * @date 2019-11-26 11:38:35
     * @param systemType 系统类型（1：op，2：经销商）
     */
    public void setSystemType(Integer systemType) {
        this.systemType = systemType;
    }

    /**
     * 用户账号（邮箱）
     * @date 2019-11-26 11:38:35
     * @return account 用户账号（邮箱）
     */
    public String getAccount() {
        return account;
    }

    /**
     * 用户账号（邮箱）
     * @date 2019-11-26 11:38:35
     * @param account 用户账号（邮箱）
     */
    public void setAccount(String account) {
        this.account = account == null ? null : account.trim();
    }

    /**
     * 登陆密码
     * @date 2019-11-26 11:38:35
     * @return password 登陆密码
     */
    public String getPassword() {
        return password;
    }

    /**
     * 登陆密码
     * @date 2019-11-26 11:38:35
     * @param password 登陆密码
     */
    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }

    /**
     * 密码盐值
     * @date 2019-11-26 11:38:35
     * @return password_salt 密码盐值
     */
    public String getPasswordSalt() {
        return passwordSalt;
    }

    /**
     * 密码盐值
     * @date 2019-11-26 11:38:35
     * @param passwordSalt 密码盐值
     */
    public void setPasswordSalt(String passwordSalt) {
        this.passwordSalt = passwordSalt == null ? null : passwordSalt.trim();
    }

    /**
     * 手机号
     * @date 2019-11-26 11:38:35
     * @return user_phone 手机号
     */
    public String getUserPhone() {
        return userPhone;
    }

    /**
     * 手机号
     * @date 2019-11-26 11:38:35
     * @param userPhone 手机号
     */
    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone == null ? null : userPhone.trim();
    }

    /**
     * 真实姓名
     * @date 2019-11-26 11:38:35
     * @return real_name 真实姓名
     */
    public String getRealName() {
        return realName;
    }

    /**
     * 真实姓名
     * @date 2019-11-26 11:38:35
     * @param realName 真实姓名
     */
    public void setRealName(String realName) {
        this.realName = realName == null ? null : realName.trim();
    }

    /**
     * 是否启用(0:启用，1:禁用)，默认启用
     * @date 2019-11-26 11:38:35
     * @return status 是否启用(0:启用，1:禁用)，默认启用
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 是否启用(0:启用，1:禁用)，默认启用
     * @date 2019-11-26 11:38:35
     * @param status 是否启用(0:启用，1:禁用)，默认启用
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * 是否删除(0：未删除,  1：删除)
     * @date 2019-11-26 11:38:35
     * @return is_deleted 是否删除(0：未删除,  1：删除)
     */
    public Boolean getIsDeleted() {
        return isDeleted;
    }

    /**
     * 是否删除(0：未删除,  1：删除)
     * @date 2019-11-26 11:38:35
     * @param isDeleted 是否删除(0：未删除,  1：删除)
     */
    public void setIsDeleted(Boolean isDeleted) {
        this.isDeleted = isDeleted;
    }

    /**
     * 操作人id
     * @date 2019-11-26 11:38:35
     * @return account_id 操作人id
     */
    public Integer getAccountId() {
        return accountId;
    }

    /**
     * 操作人id
     * @date 2019-11-26 11:38:35
     * @param accountId 操作人id
     */
    public void setAccountId(Integer accountId) {
        this.accountId = accountId;
    }

    /**
     * 操作人名
     * @date 2019-11-26 11:38:35
     * @return account_account 操作人名
     */
    public String getAccountAccount() {
        return accountAccount;
    }

    /**
     * 操作人名
     * @date 2019-11-26 11:38:35
     * @param accountAccount 操作人名
     */
    public void setAccountAccount(String accountAccount) {
        this.accountAccount = accountAccount == null ? null : accountAccount.trim();
    }

    /**
     * 是否为超级管理员（0:否， 1:是），默认为0
     * @date 2019-11-26 11:38:35
     * @return is_super 是否为超级管理员（0:否， 1:是），默认为0
     */
    public Boolean getIsSuper() {
        return isSuper;
    }

    /**
     * 是否为超级管理员（0:否， 1:是），默认为0
     * @date 2019-11-26 11:38:35
     * @param isSuper 是否为超级管理员（0:否， 1:是），默认为0
     */
    public void setIsSuper(Boolean isSuper) {
        this.isSuper = isSuper;
    }

    /**
     * 智能终端权限(0:没有，1:有),默认为0
     * @date 2019-11-26 11:38:35
     * @return smart_terminal 智能终端权限(0:没有，1:有),默认为0
     */
    public Boolean getSmartTerminal() {
        return smartTerminal;
    }

    /**
     * 智能终端权限(0:没有，1:有),默认为0
     * @date 2019-11-26 11:38:35
     * @param smartTerminal 智能终端权限(0:没有，1:有),默认为0
     */
    public void setSmartTerminal(Boolean smartTerminal) {
        this.smartTerminal = smartTerminal;
    }

    /**
     * 车联网角色名称
     * @date 2019-11-26 11:38:35
     * @return iov_group_name 车联网角色名称
     */
    public String getIovGroupName() {
        return iovGroupName;
    }

    /**
     * 车联网角色名称
     * @date 2019-11-26 11:38:35
     * @param iovGroupName 车联网角色名称
     */
    public void setIovGroupName(String iovGroupName) {
        this.iovGroupName = iovGroupName == null ? null : iovGroupName.trim();
    }

    /**
     * 创建时间
     * @date 2019-11-26 11:38:35
     * @return gmt_create 创建时间
     */
    public LocalDateTime getGmtCreate() {
        return gmtCreate;
    }

    /**
     * 创建时间
     * @date 2019-11-26 11:38:35
     * @param gmtCreate 创建时间
     */
    public void setGmtCreate(LocalDateTime gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    /**
     * 更新时间
     * @date 2019-11-26 11:38:35
     * @return gmt_modified 更新时间
     */
    public LocalDateTime getGmtModified() {
        return gmtModified;
    }

    /**
     * 更新时间
     * @date 2019-11-26 11:38:35
     * @param gmtModified 更新时间
     */
    public void setGmtModified(LocalDateTime gmtModified) {
        this.gmtModified = gmtModified;
    }

    /**
     *
     * @mbg.generated
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        AccountBean other = (AccountBean) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getSystemType() == null ? other.getSystemType() == null : this.getSystemType().equals(other.getSystemType()))
            && (this.getAccount() == null ? other.getAccount() == null : this.getAccount().equals(other.getAccount()))
            && (this.getPassword() == null ? other.getPassword() == null : this.getPassword().equals(other.getPassword()))
            && (this.getPasswordSalt() == null ? other.getPasswordSalt() == null : this.getPasswordSalt().equals(other.getPasswordSalt()))
            && (this.getUserPhone() == null ? other.getUserPhone() == null : this.getUserPhone().equals(other.getUserPhone()))
            && (this.getRealName() == null ? other.getRealName() == null : this.getRealName().equals(other.getRealName()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getIsDeleted() == null ? other.getIsDeleted() == null : this.getIsDeleted().equals(other.getIsDeleted()))
            && (this.getAccountId() == null ? other.getAccountId() == null : this.getAccountId().equals(other.getAccountId()))
            && (this.getAccountAccount() == null ? other.getAccountAccount() == null : this.getAccountAccount().equals(other.getAccountAccount()))
            && (this.getIsSuper() == null ? other.getIsSuper() == null : this.getIsSuper().equals(other.getIsSuper()))
            && (this.getSmartTerminal() == null ? other.getSmartTerminal() == null : this.getSmartTerminal().equals(other.getSmartTerminal()))
            && (this.getIovGroupName() == null ? other.getIovGroupName() == null : this.getIovGroupName().equals(other.getIovGroupName()))
            && (this.getGmtCreate() == null ? other.getGmtCreate() == null : this.getGmtCreate().equals(other.getGmtCreate()))
            && (this.getGmtModified() == null ? other.getGmtModified() == null : this.getGmtModified().equals(other.getGmtModified()));
    }

    /**
     *
     * @mbg.generated
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getSystemType() == null) ? 0 : getSystemType().hashCode());
        result = prime * result + ((getAccount() == null) ? 0 : getAccount().hashCode());
        result = prime * result + ((getPassword() == null) ? 0 : getPassword().hashCode());
        result = prime * result + ((getPasswordSalt() == null) ? 0 : getPasswordSalt().hashCode());
        result = prime * result + ((getUserPhone() == null) ? 0 : getUserPhone().hashCode());
        result = prime * result + ((getRealName() == null) ? 0 : getRealName().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getIsDeleted() == null) ? 0 : getIsDeleted().hashCode());
        result = prime * result + ((getAccountId() == null) ? 0 : getAccountId().hashCode());
        result = prime * result + ((getAccountAccount() == null) ? 0 : getAccountAccount().hashCode());
        result = prime * result + ((getIsSuper() == null) ? 0 : getIsSuper().hashCode());
        result = prime * result + ((getSmartTerminal() == null) ? 0 : getSmartTerminal().hashCode());
        result = prime * result + ((getIovGroupName() == null) ? 0 : getIovGroupName().hashCode());
        result = prime * result + ((getGmtCreate() == null) ? 0 : getGmtCreate().hashCode());
        result = prime * result + ((getGmtModified() == null) ? 0 : getGmtModified().hashCode());
        return result;
    }

    /**
     *
     * @mbg.generated
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", systemType=").append(systemType);
        sb.append(", account=").append(account);
        sb.append(", password=").append(password);
        sb.append(", passwordSalt=").append(passwordSalt);
        sb.append(", userPhone=").append(userPhone);
        sb.append(", realName=").append(realName);
        sb.append(", status=").append(status);
        sb.append(", isDeleted=").append(isDeleted);
        sb.append(", accountId=").append(accountId);
        sb.append(", accountAccount=").append(accountAccount);
        sb.append(", isSuper=").append(isSuper);
        sb.append(", smartTerminal=").append(smartTerminal);
        sb.append(", iovGroupName=").append(iovGroupName);
        sb.append(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}